#ifndef _func_H
#define _func_H

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <dirent.h>
#include <pwd.h>
#include <grp.h>
#include <time.h>
#include <stdbool.h>
#include <fcntl.h>
#include <sys/mman.h>
#include <libgen.h>
#include <wait.h>
#include <sys/shm.h>
#include <sys/ipc.h>
#include <signal.h>
#include <pthread.h>
#include <error.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <arpa/inet.h>
#include <sys/epoll.h>
#include <sys/types.h>
#include <sys/uio.h>
#include <fcntl.h>
#include <shadow.h>
#include <errno.h>
#include <sys/sendfile.h>
#include <openssl/md5.h>
#include <mysql/mysql.h>
#include <crypt.h>
#include<syslog.h>

#define ARGS_CHECK(argc, n){    \
    if(argc != n){  \
        fprintf(stderr, "args error: expected %d arguments", n);    \
        exit(1);    \
    }   \
}   

#define ERROR_CHECK(retval, val, msg){  \
    if(retval == val){  \
        perror(msg);    \
        exit(1);    \
    }   \
}
#endif
